package offer;

import java.util.Arrays;

@FunctionalInterface
public interface MinimumDifference {
    int minimumDifference(int[] nums, int k);
}
class MinimumDifferenceImpl1 implements MinimumDifference{
    /**
     * 暴力解法，排序后维护一个长度为K的动态窗口，同时记录最高分与最低分之差，遍历一次后输出小差值
     * @param nums 分数列表
     * @param k 选k个学生
     * @return
     */
    @Override
    public int minimumDifference(int[] nums, int k) {
        Arrays.sort(nums);
        int n = nums.length;

        int ans = Integer.MAX_VALUE;
        for (int i = 0; i < n - k + 1; i++) {
            int curMin = nums[i + k - 1] - nums[i];
            if(curMin < ans){
                ans = curMin;
            }
        }
        return ans;
    }
}
